Conventionally, there is an apparatus configured to inquire about services by using an action frame defined by IEEE 802.11.
In the conventional technique described above, however, the apparatus merely includes, in the action frame, data for inquiring about services, and transmits the action frame. Therefore, there is room for improvement in security of communication with other apparatuses.
Therefore, an object of the exemplary embodiments is to provide an information processing apparatus capable of transmitting information while ensuring security of communication with other apparatuses.
In the exemplary embodiments, in order to attain the object described above, the following configuration examples are exemplified.
An exemplary embodiment is an information processing apparatus having a wireless communication function. The information processing apparatus includes at least one processor configured to execute an identification information obtaining process, a key generating process, an encryption process, and a transmission process. The processor, in the identification information obtaining process, obtains identification information which is used for performing wireless communication with another information processing apparatus and is unique to the wireless communication. The processor, in the key generating process, generates a first encryption key by using the identification information obtained in the identification information obtaining process, and a key common to the information processing apparatus and the other information processing apparatus. The processor, in the encryption process, encrypts at least a portion of a frame by using the first encryption key generated in the key generating process. The processor, in the transmission process, wirelessly broadcasts the frame encrypted in the encryption process.
According to the above configuration, the first encryption key can be generated based on the key common to the information processing apparatus and the other information processing apparatus, and the identification information which is used for performing wireless communication with the other information processing apparatus and is unique to the wireless communication. Since the first encryption key is generated based on the identification information unique to communication, it is possible to generate a different first encryption key every time communication is performed (e.g., every time communication with the other information processing apparatus is started). In addition, since the first encryption key is generated based on the key common to the two apparatuses, a third apparatus that does not have the common key cannot generate the first encryption key. Therefore, the information processing apparatus can safely transmit the frame to the other information processing apparatus.
In another configuration, the processor, in the key generating process, may generate a converted value, based on the identification information and a predetermined function, and may generate the first encryption key by using the generated converted value and the common key.
According to the above configuration, the converted value is generated based on the identification information, and the first encryption key can be generated by using the converted value and the common key.
In another configuration, the common key may be a key written in hardware of the information processing apparatus and hardware of the other information processing apparatus.
According to the above configuration, since the common key is a key written in the hardware of the information processing apparatus and the other information processing apparatus, the key cannot be easily extracted, whereby the common key can be safely held.
In another configuration, the information processing apparatus may further execute: a data transmission/reception process of wirelessly transmitting or receiving first data used for information processing, to or from the other information processing apparatus; and information processing using the first data received in the data transmission/reception process. The processor, in the transmission process, may broadcast the frame while transmission or reception of the first data is continuously performed between the information processing apparatus and the other information processing apparatus.
According to the above configuration, the frame can be broadcast while transmission/reception of the first data used for the information processing is continuously performed between the information processing apparatus and the other information processing apparatus. For example, the frame can be broadcast even when an application is executed between the information processing apparatus and the other information processing apparatus.
In another configuration, the processor, in the data transmission/reception process, may encrypt the first data and transmit the encrypted first data.
According to the above configuration, the first data can be encrypted, whereby communication between the information processing apparatus and the other information processing apparatus can be safely performed.
In another configuration, the processor, in the data transmission/reception process, may encrypt the first data by using a second encryption key different from the first encryption key and the common key.
According to the above configuration, the information processing apparatus can safely transmit the first data by using the second encryption key different from the first encryption key and the common key.
In another configuration, second data for generating the second encryption key may be included in at least a portion of the frame. The processor, in the encryption process, may encrypt the second data for generating the second encryption key, by using the first encryption key. The processor, in the transmission process, may include, in the frame, the encrypted second data for generating the second encryption key, and broadcast the frame.
According to the above configuration, the second data for generating the second encryption key can be encrypted by using the first encryption key, and broadcast. Thus, the second data for generating the second encryption key can be safely transmitted to the apparatuses having the common key at the same time.
In another configuration, the processor may execute, as the information processing, applications with the other information processing apparatus. The second encryption key may be a key common to the applications performed between the information processing apparatus and the other information processing apparatus.
According to the above configuration, for example, the second encryption key can be varied for each application executed between the information processing apparatus and the other information processing apparatus.
In another configuration, the information processing apparatus may further execute a communication starting process of starting communication between the information processing apparatus and the other information processing apparatus, in response to a request from the other information processing apparatus which has received the frame broadcasted.
According to the above configuration, the other information processing apparatus transmits a request upon receiving the frame from the information processing apparatus, and the information processing apparatus can start communication with the information processing apparatus in response to the request.
In another configuration, the processor, in the encryption process, may generate a hash value of at least a portion of the frame, and encrypt, by using the first encryption key, at least a portion of the frame including the hash value.
According to the above configuration, the information processing apparatus encrypts the hash value of at least a portion of the frame by using the first encryption key, and transmits the frame. Therefore, for example, the other information processing apparatus having received the frame can confirm that the data in the frame is not altered.
In another configuration, the processor, in the encryption process, may generate a hash value of a vendor-specific portion of the frame, and encrypt, by using the first encryption key, at least a portion of the frame including the hash value.
According to the above configuration, the frame can be transmitted with the vendor-specific portion in the frame being encrypted.
In another configuration, a portion of the frame, which is not encrypted in the encryption process, may include a value which is changed when at least a portion of the frame is updated. The processor, in the encryption process, may encrypt at least a portion of the frame by using the value and the first encryption key.
According to the above configuration, the frame is encrypted based on the first encryption key, and the value which is changed when at least a portion of the frame is updated. Therefore, a different cipher text can be generated every time at least a portion of the frame is updated, whereby the frame is prevented from being decrypted by a third apparatus that does not have the common key.
In another configuration, the processor, in the transmission process, may repeatedly broadcast the frame.
According to the above configuration, the information processing apparatus can repeatedly broadcast the frame.
In another configuration, the frame which is transmitted in the transmission process may include information for identifying an application that is executed by the information processing apparatus.
According to the above configuration, the information processing apparatus can broadcast the information for identifying the application that is executed by the information processing apparatus, and therefore, can transmit the information for identifying the application to a large number of apparatuses at the same time.
In another configuration, the information for identifying the application may be included in a portion of the frame, which is not encrypted by the encryption process.
According to the above configuration, the information for identifying the application can be transmitted in plain texts to a large number of apparatuses.
Another exemplary embodiment may be an information processing program executed by the information processing apparatus described above. Still another exemplary embodiment may be a wireless communication system including the information processing apparatus and the other information processing apparatus, or a communication method performed in the wireless communication system.
Yet another exemplary embodiment may be an information processing apparatus having a wireless communication function. The information processing apparatus may include at least one processor configured to execute: an encryption process of encrypting at least a portion of an action frame by using a key common to the information processing apparatus and another information processing apparatus; and a transmission process of wirelessly broadcasting the action frame encrypted in the encryption process.
According to the exemplary embodiments, it is possible to encrypt the frame by using the key common to the information processing apparatus and the information processing apparatus, and broadcast the encrypted frame.
These and other objects, features, aspects and advantages of the exemplary embodiments will become more apparent from the following detailed description of the exemplary embodiments when taken in conjunction with the accompanying drawings.